package com.own.business.level.business.aop;

import org.springframework.core.annotation.AliasFor;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * LevelAop
 *
 * @author chenxueli
 * @date 2022-07-25 11:07:00
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface LevelAop {

    /**
     * 类型信息
     *
     * @return 类型信息
     */
    @AliasFor("type")
    String value() default "";

    /**
     * 类型信息
     *
     * @return 类型信息
     */
    @AliasFor("value")
    String type() default "";

    /**
     * 执行时机
     *
     * @return 是在运行完成之后执行还是之前执行
     */
    boolean isAfter() default true;

}
